from rest_framework import viewsets

from BYD_ERP.utils.base_views import MultipleDestroyMixin, MultipleOpenMixin
from BYD_ERP.utils.pagination import GlobalPagination
from goods_info.models import PartnerModel
from goods_info.serializer.partner_serializer import PartnerSerializer


class PartnerView(viewsets.ModelViewSet, MultipleDestroyMixin, MultipleOpenMixin):
    """
        create:
        货品（存货档案）合作方--新增

        货品（存货档案）合作方新增，status：201（成功），return：新增货品（存货档案）合作方

        destroy:
        货品（存货档案）合作方--删除

        货品（存货档案）合作方删除，status：204（成功），return：None

        multiple_delete:
        货品（存货档案）合作方--批量删除，必传参数：ids=[1,2,3,4……]

        货品（存货档案）合作方批量删除，status：204（成功），return：None

        multiple_open:
        货品（存货档案）合作方--批量启用或者禁用，必传（json）参数：ids=[1,2,3,4……]（列表中可以只有一个参数），is_open=1/0

        {
            "ids": [1,2],
            "is_open": "0"
        }
        is_open=1表示禁用，is_open=0表示启用
        货品（存货档案）合作方批量启用或者禁用，status：204（成功），return：None

        update:
        货品（存货档案）合作方--修改

        货品（存货档案）合作方修改，status：200（成功），return：修改后的货品（存货档案）合作方

        partial_update:
        货品（存货档案）合作方--局部修改，可以传任意属性的值，服务器会修改指定的属性值

        货品（存货档案）合作方局部修改，status：200（成功），return：修改后的货品（存货档案）合作方

        list: 查询所有的顶级类别
        货品（存货档案）合作方--获取分页列表，可选get请求参数：pid，如果没有传则查询顶级类别，否则查询指定pid下的子类别

        货品（存货档案）合作方列表信息，status：200（成功），return：货品（存货档案）合作方列表

        retrieve:
        查询某一个货品（存货档案）合作方

        查询指定ID的货品（存货档案）合作方，status：200（成功），return：指定货品（存货档案）合作方

    """
    queryset = PartnerModel.objects.all()
    serializer_class = PartnerSerializer
    pagination_class = GlobalPagination

